package cn.wolfcode.luowowo.hotel.service;

import cn.wolfcode.luowowo.article.domain.Destination;
import cn.wolfcode.luowowo.hotel.domain.Hotel;
import cn.wolfcode.luowowo.hotel.query.HotelQuery;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IHotelService {


    /**
     * 删除hotel数据
     * @param id 主键id
     * @return 受影响行数
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 插入一条新数据
     * @param record hotel的po对象
     * @return 返回受影响函数
     */
    int insert(Hotel record);

    /**
     * 通过主键id获取数据
     * @param id 主键id值
     * @return 返回hotel对象
     */
    Hotel selectByPrimaryKey(Long id);

    /**
     * 根据id更新数据
     * @param record hotel对象
     * @return 返回受影响行数
     */
    int updateByPrimaryKey(Hotel record);

    /**
     * 根据主题id获取相应主题的hotel
     * @param themeId 主题id
     * @return hotel的list集合
     */
    List<Hotel> getListByThemeId(Long themeId);

    /**
     * 根据酒店列表获取对应的地区(超过六个只获取六个)
     * @param hotels 酒店列表
     * @return 地区列表
     */
    List<Destination> getDestsByHotels(List<Hotel> hotels);

    /**
     * 获取有折扣酒店的地区
     * @return 地区集合
     */
    List<Destination> getDestByDisCountHotel();

    /**
     * 条件查询
     * @return 酒店
     */
    PageInfo<Hotel> query(HotelQuery qo);

    /**
     * 获取全部数据
     * @return
     */
    List<Hotel> listAll();
}
